package cn.izeno.wx.models.component

class AppBaseInfo {
  /**
   * - 1：订阅号
   * - 2：服务号
   * - 3：小程序
   */
  var accountType: Int = 0
  var appid: String = ""
  lateinit var nickname: String
  lateinit var principalName: String
  var principalType: Int = 0
  /**
   * 实名验证状态（
   * - 1：实名验证成功，
   * - 2：实名验证中，
   * - 3：实名验证失败）
   *
   * > 调用接口1.1创建帐号时，realname_status会初始化为2对于注册方式为微信认证的帐号，资质认证成功时，realname_status会更新为1
   *
   * #### 注意！！！当realname_status不为1时，帐号只允许调用本文档内的以下API：（即无权限调用其他API）
   * - 微信认证相关接口（参考2.x）
   * - 帐号设置相关接口（参考3.x）
   */
  var realnameStatus: Int = 0


  /** 微信认证信息 */
  lateinit var wxVerifyInfo: WxVerifyInfo

  /** 头像url */
  lateinit var headImageInfo: HeadImageInfo

  /** 功能介绍信息 */
  lateinit var signatureInfo: SignatureInfo


  class SignatureInfo {
    /**
     * 功能介绍修改次数总额度（本月）
     */
    var modifyQuota: Int = 0
    /**
     * 功能介绍已使用修改次数（本月）
     */
    var modifyUsedCount: Int = 0
    /**
     * 功能介绍
     */
    var signature: String = ""
  }

  class HeadImageInfo {
    /** 头像url */
    var headImageUrl: String? = ""
    /** 头像修改次数总额度（本年） */
    var modifyQuota: Int = 0
    /** 头像已使用修改次数（本年）*/
    var modifyUsedCount: Int = 0
  }

  class WxVerifyInfo {

    /**
     * 是否需要年审（true：是，false：否）（qualification_verify = true时才有该字段）
     */
    var annualReview: Boolean? = false

    /**
     * 年审开始时间，时间戳（qualification_verify = true时才有该字段）
     */
    var annualReviewBeginTime: Int? = 0

    /**
     * 年审截止时间，时间戳（qualification_verify = true时才有该字段）
     */
    var annualReviewEndTime: Int? = 0

    /**
     * 是否名称认证（true：是，false：否）对于公众号（订阅号、服务号），是名称认证，微信客户端才会有微信认证打勾的标识。
     */
    var namingVerify: Boolean? = false

    /**
     * 是否资质认证（true：是，false：否）若是，拥有微信认证相关的权限。
     */
    var qualificationVerify: Boolean? = false
  }
}

